package com.io.IO;



import java.io.*;

/**
 * 字节流
 *文件拷贝
 * @author jiangbang
 * @date 2016/6/2
 */
public class ByteDome1 {

    public static void main(String[] args) {
        test2();
//        test3();
    }

    /**
     * 1.读取文件内容
     */
    public static void test1(){
        //1.建立联系，File对象
        File src = new File("D:/demo/1.txt");
        //2.选择流
        InputStream is = null;//提升作用域
        try {
            is = new FileInputStream(src);
            //3、操作不断读取 华冲数组
            byte[] car = new byte[10];
            int len =0;//接收实际读取大小
            //循环读取
            while(-1!=(len=is.read(car))){
                //输出 字节数组转字符串
                String info =new String(car,0,len);
                System.out.println(info);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            try {
                if(null!=is){
                    is.close();
                }
            }catch (Exception e2){
                System.out.println("关闭失败");
            }
        }
    }

    //2.写入文件内容
    public static void test2(){
        //1.建立联系 服了对象 目的地
        File src = new File("D:/demo/1.txt");
        //2.选择流  文件输出流  outputstream FileOutputStream
        OutputStream os = null;
        //以追加形式 写出文件
        try {
            os = new FileOutputStream(src,true);  //true 表示追加， false表示覆盖
            //3.操作
            String dataSrc = "追加输出";
            //字符创转字节数据
            byte[] data =dataSrc.getBytes();
            os.write(data,0,data.length);
            os.flush();//强制刷新出去
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            System.out.println("文件未找到");
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            try {
                if(null!=os){
                    os.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    /**
     * 文件拷贝
     */
    public static  void test3(){
        //1.建立联系 服了对象 目的地
        File file= new File("D:/demo/1.txt");
        File file2= new File("D:/demo/2.txt");
        //2.选择流
        OutputStream os = null;//文件输出流  outputstream FileOutputStream
        InputStream is = null;//文件输日流  InputStream FileInputStream
        try {
            //创建文件
            if(!file.exists()){
                file.createNewFile();
            }
            if(!file2.exists()){
                file2.createNewFile();
            }
            //拷贝操作
            is = new FileInputStream(file);
            os = new FileOutputStream(file2);

            int len = 0;
            byte[] bytes = new byte[100];
            while(-1!=(len=is.read(bytes))){
                os.write(bytes,0,len);
            }
            os.flush();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                if(is!=null){
                    is.close();
                }
                if(os!=null){
                    os.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }


}
